Output and Comparison topic
Pxl is a headless pixel manipulation library, and provides limited support for
rendering, expecting the user to provide their own rendering solution (any
Canvas
-like API will do, or something that supports pixel buffers in one of
the many formats Pxl provides).
To aid with testing and debugging, Pxl provides a few useful utilities.
Comparisons
Two buffers can be compared for differences using the compare
method:
final diff = pixels1.compare(pixels2);
print(diff);
The compare
method returns a Comparison
object, which can be used to
summarize, iterate, or visualize the differences between two buffers. Pxl itself
uses this method in its test suite to compare expected and actual results for
pixel operations.
final diff = pixels1.compare(pixels2);
if (diff.difference < 0.01) {
print('The buffers are nearly identical.');
} else {
print('The buffers differ by ${diff.difference}.');
}
Codecs
Converting pixel buffers to popular formats is best done with a full-featured
library like image
or dart:ui
, but Pxl provides a few simple codecs for
converting pixel buffers to pixel-based formats like PFM, PBM, and can
even output as an uncompressed PNG with uncompressedPngEncoder:
import 'dart:io';
import 'package:pxl/pxl.dart';
void main() {
final image = IntPixels(8, 8);
image.fill(abgr8888.red);
final bytes = uncompressedPngEncoder.convert(image);
File('example.png').writeAsBytesSync(bytes);
}
Classes
-
ComparisonResult<
T> Output and Comparison - The result of a pixel comparison test.
- NetpbmAsciiCodec Output and Comparison
- A codec that encodes and decodes pixel data as a portable pixmap (Netpbm) image format.
- NetpbmAsciiDecoder Output and Comparison
- Decodes a portable pixmap (Netpbm) image format using ASCII to pixel data.
- NetpbmAsciiEncoder Output and Comparison
- Encodes pixel data in a portable pixmap (Netpbm) image format using ASCII.
- NetpbmBinaryCodec Output and Comparison
- A codec that encodes and decodes pixel data as a portable pixmap (Netpbm) image format.
- NetpbmBinaryDecoder Output and Comparison
- Decodes a portable pixmap (Netpbm) image format using binary to pixel data.
- NetpbmBinaryEncoder Output and Comparison
- Encodes pixel data in a portable pixmap (Netpbm) image format using binary.
-
NetpbmDecoder<
T> Output and Comparison - Decodes a portable pixmap (Netpbm) image format to pixel data.
-
NetpbmEncoder<
T> Output and Comparison - Encodes pixel data as a portable pixmap (Netpbm) image format.
- NetpbmHeader Output and Comparison
- Parsed header information from a Netpbm image.
- UncompressedPngEncoder Output and Comparison
- Encodes a buffer of pixel data as an uncompressed RGBA PNG image with 8-bit color depth.
Constants
- netpbmAsciiCodec → const NetpbmAsciiCodec Output and Comparison
- A codec that encodes and decodes pixel data as a portable pixmap (Netpbm) image format.
- netpbmAsciiDecoder → const NetpbmAsciiDecoder Output and Comparison
- Decodes a portable pixmap (Netpbm) image format using ASCII to pixel data.
- netpbmAsciiEncoder → const NetpbmAsciiEncoder Output and Comparison
- Encodes pixel data as a portable pixmap (Netpbm) image format using ASCII.
- netpbmBinaryCodec → const NetpbmBinaryCodec Output and Comparison
- A codec that encodes and decodes pixel data as a portable pixmap (Netpbm) image format.
- netpbmBinaryDecoder → const NetpbmBinaryDecoder Output and Comparison
- Decodes a portable pixmap (Netpbm) image format using binary to pixel data.
- netpbmBinaryEncoder → const NetpbmBinaryEncoder Output and Comparison
- Encodes pixel data as a portable pixmap (Netpbm) image format.
- uncompressedPngEncoder → const UncompressedPngEncoder Output and Comparison
- Encodes a buffer of integer pixel data as an uncompressed RGBA PNG image.
Enums
- NetpbmFormat Output and Comparison
- Formats supported by the Netpbm image format.